package File;

import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;

/**
 * ClassName:FileDome006
 * Package:File
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/2/27-20:44
 * @Version:v1.0
 */
public class FileDome006 {
    /**
     * public static File[] listRoots() 列出可用的文件系统根
     * public String[] list() 获取当前该路下所有的内容
     * public String[] list(FilenameFiler filter) 利用文件名过滤器获取当前该路径下所有内容
     * public File[] listFile(FileFilter filter) 利用文件名过滤器获取当前该路径下所有内容
     * public File[] listFiles(FilenameFilter filter) 利用文件名过滤器获取当前该路径下所有内容
     */
    public static void main(String[] args) {
        //listRoots() 获取系统中所有的盘符
        File[] files = File.listRoots();
        System.out.println(Arrays.toString(files));

        //list() 获取当前该路下所有的内容(仅仅能获取名字)
        File f1 = new File("E:\\aaa");
        String[] list = f1.list();
        for (String s : list) {
            System.out.println(s);
        }

        //list(FilenameFiler filter) 利用文件名过滤器获取当前该路径下所有内容
        //需求：我现在有获取E:\aaa文件夹下的所有txt文件
        File f2 = new File("E:\\aaa");
        //accept方法的形参,依次表示aaa文件夹里面每一个文件或者文件夹的路径
        //参数一：父级路径
        //参数二：子级路径
        //返回值：如果返回值为true,就表示当前路径保留
        //      如果返回值为false,就表示当前路径舍弃不要
        String[] arr3 = f2.list(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                File src = new File(dir, name);
//                if (src.isFile() && name.endsWith(".txt")) {
//                    return true;
//                }
//                return false;

                return src.isFile() && name.endsWith(".txt");
//                return true;
//                return false;
            }
        });
        System.out.println(Arrays.toString(arr3));

        //
    }
}
